package com.wicket.okrapp.biz.service.dto.common;

import com.wicket.okrapp.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;

import lombok.Data;
import java.util.Objects;

/**
 * @desc CycleStageDataDto
 * @使用场景
 */
@Data
public class CycleStageDataDto extends BaseDto implements Serializable {

  /**
   * 周期阶段资料记录ID
   */
  @ApiModelProperty("周期阶段资料记录ID")
  private String cycleStageDataId;

  /**
   * 被评对象目标周期ID
   */
  @ApiModelProperty("被评对象目标周期ID")
  private String evaObjTargetCycleId;

  /**
   * 虚拟组织下部门ID
   */
  @ApiModelProperty("牵头部门ID")
  private String deptId;

  /**
   * 组织内部门身份名称
   */
  @ApiModelProperty("牵头部门身份")
  private String virtualOrgDeptStatus;

  /**
   * 虚拟组织成员就职记录ID
   */
  @ApiModelProperty("责任人就职记录ID")
  private String virtualOrgInductionRecordId;

  /**
   * 组内职务名称
   */
  @ApiModelProperty("责任人职务")
  private String virtualOrganizationPosition;

  /**
   * 目标周期简称
   */
  @ApiModelProperty("目标周期简称")
  private String cyclelAlias;

  /**
   * 周期名称
   */
  @ApiModelProperty("周期名称")
  private String cycleStandardName;

  /**
   * 周期类型实例简称
   */
  @ApiModelProperty("周期类型实例简称")
  private String cycleNumberShortName;

  /**
   * 实际值
   */
  @ApiModelProperty("实际值")
  private Double actualValue;

  /**
   * 实际值单位 INDIVIDUAL:个 DOOR:门 TERM:项 PIECE:篇 YUAN:元 FEN:分 WAN_YUAN:万元 PERCENT:百分率
   */
  @ApiModelProperty("实际值单位")
  private String actualValueUnit;

  /**
   * 诊断值
   */
  @ApiModelProperty("诊断值")
  private Double targetDiagnosticValue;

  /**
   * 进度值
   */
  @ApiModelProperty("进度值")
  private Double progressValue;

  /**
   * 进度值单位 INDIVIDUAL:个 DOOR:门 TERM:项 PIECE:篇 YUAN:元 FEN:分 WAN_YUAN:万元 PERCENT:百分率
   */
  @ApiModelProperty("进度值单位")
  private String progressValueUnit;

  /**
   * 进度较上次增降幅
   */
  @ApiModelProperty("进度较上次增降幅")
  private Double progressFromLastRatio;

  /**
   * 进度较上次增降幅单位 INDIVIDUAL:个 DOOR:门 TERM:项 PIECE:篇 YUAN:元 FEN:分 WAN_YUAN:万元 PERCENT:百分率
   */
  @ApiModelProperty("进度较上次增降幅单位")
  private String progressFromLastRatioUnit;

  /**
   * 达成度
   */
  @ApiModelProperty("达成度")
  private Double reach;

  /**
   * 达成度单位 INDIVIDUAL:个 DOOR:门 TERM:项 PIECE:篇 YUAN:元 FEN:分 WAN_YUAN:万元 PERCENT:百分率
   */
  @ApiModelProperty("达成度单位")
  private String reachUnit;

  /**
   * 达成度较上次增降福
   */
  @ApiModelProperty("达成度较上次增降福")
  private Double actualFromLastTimeRatio;

  /**
   * 达成度较上次增降福单位 INDIVIDUAL:个 DOOR:门 TERM:项 PIECE:篇 YUAN:元 FEN:分 WAN_YUAN:万元 PERCENT:百分率
   */
  @ApiModelProperty("达成度较上次增降福单位")
  private String actualFromLastTimeRatioUnit;

  /**
   * 实时得分
   */
  @ApiModelProperty("实时得分")
  private Double realTimeScore;

  /**
   * 实时得分单位
   */
  @ApiModelProperty("实时得分单位")
  private String realTimeScoreUnit;

  /**
   * 权重
   */
  @ApiModelProperty("权重")
  private Double weightValue;

  /**
   * 权重分值
   */
  @ApiModelProperty("权重分值")
  private Double weightScore;

  /**
   * 资料文字概要
   */
  @ApiModelProperty("资料文字概要")
  private String textSummaryData;

  /**
   * 操作时间
   */
  @ApiModelProperty("操作时间")
  private Date operateTime;
/**
     * 内容性质类型编码 STA_WOR_SUM_CON:阶段工作总结内容 SUM_OF_PRO:问题总结 SOLVING_IDEAS:解决思路 RE_FOR_IMP:改进建议
     */
    @ApiModelProperty("内容性质类型编码")
    private String	 stageContentType;

    /**
     * 阶段资料具体内容 
     */
    @ApiModelProperty("阶段资料具体内容")
    private String	 stageData;

    /**
     * 内容责任人就职记录ID 
     */
    @ApiModelProperty("内容责任人就职记录ID")
    private String	 filledByInductionId;
/**
     * 关联目标内容类型编码 TARGET:目标 TARGET_CATEGORY:目标分类 OBJECTIVE:指标
     */
    @ApiModelProperty("关联目标内容类型编码")
    private String	 targetCycleContentTypeCode;

    /**
     * 关联目标内容ID 
     */
    @ApiModelProperty("关联目标内容ID")
    private String	 targetCycleContentId;
/**
     * 周期资料归属对象ID 
     */
    @ApiModelProperty("周期资料归属对象ID")
    private String	 cycleDataObjId;

    /**
     * 资料图片概要地址 
     */
    @ApiModelProperty("资料图片概要地址")
    private String	 summaryDataPic;

    /**
     * 周期ID 
     */
    @ApiModelProperty("周期ID")
    private String	 cycleId;

    /**
     * 周期开始时间 
     */
    @ApiModelProperty("周期开始时间")
    private Date	 cycleStartTime;

    /**
     * 周期结束时间 
     */
    @ApiModelProperty("周期结束时间")
    private Date	 cycleEndTime;

    /**
     * 周期类型标识 
     */
    @ApiModelProperty("周期类型标识")
    private String	 cycleTypeCode;

    /**
     * 周期类型名称 
     */
    @ApiModelProperty("周期类型名称")
    private String	 cycleTypeName;

    /**
     * 周期类型实例标识 
     */
    @ApiModelProperty("周期类型实例标识")
    private String	 cycleTypeInstanceCode;
/**
     * 是否完成评价工作 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否完成评价工作")
    private String	 isDoneEvaluate;

    /**
     * 是否完成填报工作 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否完成填报工作")
    private String	 isDoneFilleout;
/**
     * 创建人就职记录ID 
     */
    @ApiModelProperty("创建人就职记录ID")
    private String	 createInductionId;

    /**
     * 创建时间 
     */
    @ApiModelProperty("创建时间")
    private Date	 createTime;

    /**
     * 填报角色ID 
     */
    @ApiModelProperty("填报角色ID")
    private String	 evaluationFillRoleId;

    /**
     * 普通角色标识 
     */
    @ApiModelProperty("普通角色标识")
    private String	 roleCode;

    /**
     * 普通角色名称 
     */
    @ApiModelProperty("普通角色名称")
    private String	 roleName;
/**
     * 是否计划验收周期 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否计划验收周期")
    private String	 isPlanReceptionCycle;
/**
     * 任务ID 
     */
    @ApiModelProperty("任务ID")
    private String	 taskId;
/**
     * 是否过程周期阶段 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否过程周期阶段")
    private String	 isProcessCycleStage;

    /**
     * 任务实际开始时间 
     */
    @ApiModelProperty("任务实际开始时间")
    private Date	 actualStartTime;

    /**
     * 进度较上次变化值 
     */
    @ApiModelProperty("进度较上次变化值")
    private Double	 fromLastProgressValue;

    /**
     * 进度较上次变化值单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:百分率 PORTION:份
     */
    @ApiModelProperty("进度较上次变化值单位")
    private String	 fromLastProgressValueUnit;

    /**
     * 较上次目标变化值 
     */
    @ApiModelProperty("较上次目标变化值")
    private Double	 changeFromLastTarget;

    /**
     * 较上次目标变化值单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:百分率 PORTION:份
     */
    @ApiModelProperty("较上次目标变化值单位")
    private String	 changeFromLastTargetUnit;

    /**
     * 较上次目标增降幅 
     */
    @ApiModelProperty("较上次目标增降幅")
    private Double	 fromLastTargetLiftRatio;

    /**
     * 较上次目标增降幅单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:百分率 PORTION:份
     */
    @ApiModelProperty("较上次目标增降幅单位")
    private String	 fromLastTargetLiftRatioUnit;

    /**
     * 达成度较上次变化值 
     */
    @ApiModelProperty("达成度较上次变化值")
    private Double	 fromLastReach;

    /**
     * 达成度较上次变化值单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:百分率 PORTION:份
     */
    @ApiModelProperty("达成度较上次变化值单位")
    private String	 fromLastReachUnit;

    /**
     * 汇报得分（数值） 
     */
    @ApiModelProperty("汇报得分（数值）")
    private Double	 reportScoreValue;

    /**
     * 汇报得分单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:百分率 PORTION:份
     */
    @ApiModelProperty("汇报得分单位")
    private String	 reportScoreUnit;

    /**
     * 实际得分（数值） 
     */
    @ApiModelProperty("实际得分（数值）")
    private Double	 actualScoreValue;

    /**
     * 实际得分单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:百分率 PORTION:份
     */
    @ApiModelProperty("实际得分单位")
    private String	 actualScoreUnit;
/**
     * 工作周期更新切片 
     */
    @ApiModelProperty("工作周期更新切片")
    private String	 workCycleUpdateSlice;
/**
     * 汇报得分（文本） 
     */
    @ApiModelProperty("汇报得分（文本）")
    private String	 reportScore;

    /**
     * 实际得分（文本） 
     */
    @ApiModelProperty("实际得分（文本）")
    private String	 actualScore;
/**
     * 归属内容ID 
     */
    @ApiModelProperty("归属内容ID")
    private String	 belongToContentId;
/**
     * 超文本内容 
     */
    @ApiModelProperty("阶段工作总结内容")
    private String	 hypertextContent;
/**
     * 任务实际结束时间 
     */
    @ApiModelProperty("任务实际结束时间")
    private Date	 actualEndTime;
/**
     * 展示目标值 
     */
    @ApiModelProperty("展示目标值")
    private Double	 showTargetValue;

    /**
     * 冗余单位 
     */
    @ApiModelProperty("展示目标值单位")
    private String	 unit;
/**
     * 归属内容类型编码 TARGET:目标 TARGET_CATEGORY:目标分类 OBJECTIVE:指标 INDUCTION_ID:就职记录 WORK_TASK:工作任务
     */
    @ApiModelProperty("归属内容类型编码")
    private String	 belongToContentTypeCode;
/**
     * 父子中周期类型 PARENT_CYCLE:父周期 MID_CYCLE:中期 SUB_CYCLE:子周期 PROCESS_CYCLE:过程周期
     */
    @ApiModelProperty("父子中周期类型")
    private String	 parentSubMidCycleType;

    /**
     * 任务名称 
     */
    @ApiModelProperty("任务名称")
    private String	 taskName;
/**
     * 数据结果ID 
     */
    @ApiModelProperty("数据结果ID ")
    private String	 dataResultId;

    /**
     * 数据值结果 
     */
    @ApiModelProperty("数据值结果")
    private Double	 dataResult;

    /**
     * 操作人就职记录ID 
     */
    @ApiModelProperty("操作人就职记录ID")
    private String	 operationInductionId;
/**
     * 执行周期阶段周期结束时间
     */
    @ApiModelProperty("执行周期阶段周期结束时间")
    private Date	 newCycleEndTime;
@Override
  public boolean equals(Object o) {
      if (this == o) return true;
      if (o == null || getClass() != o.getClass()) return false;
      if (!super.equals(o)) return false;
      CycleStageDataDto that = (CycleStageDataDto) o;
      return  cycleStageDataId == that.cycleStageDataId&&evaObjTargetCycleId == that.evaObjTargetCycleId&&deptId == that.deptId&&virtualOrgDeptStatus == that.virtualOrgDeptStatus&&virtualOrgInductionRecordId == that.virtualOrgInductionRecordId&&virtualOrganizationPosition == that.virtualOrganizationPosition&&cyclelAlias == that.cyclelAlias&&cycleStandardName == that.cycleStandardName&&cycleNumberShortName == that.cycleNumberShortName&&actualValue == that.actualValue&&actualValueUnit == that.actualValueUnit&&targetDiagnosticValue == that.targetDiagnosticValue&&progressValue == that.progressValue&&progressValueUnit == that.progressValueUnit&&progressFromLastRatio == that.progressFromLastRatio&&progressFromLastRatioUnit == that.progressFromLastRatioUnit&&reach == that.reach&&reachUnit == that.reachUnit&&actualFromLastTimeRatio == that.actualFromLastTimeRatio&&actualFromLastTimeRatioUnit == that.actualFromLastTimeRatioUnit&&realTimeScore == that.realTimeScore&&realTimeScoreUnit == that.realTimeScoreUnit&&weightValue == that.weightValue&&weightScore == that.weightScore&&textSummaryData == that.textSummaryData&&operateTime == that.operateTime&&stageContentType == that.stageContentType&&stageData == that.stageData&&filledByInductionId == that.filledByInductionId&&targetCycleContentTypeCode == that.targetCycleContentTypeCode&&targetCycleContentId == that.targetCycleContentId&&cycleDataObjId == that.cycleDataObjId&&summaryDataPic == that.summaryDataPic&&cycleId == that.cycleId&&cycleStartTime == that.cycleStartTime&&cycleEndTime == that.cycleEndTime&&cycleTypeCode == that.cycleTypeCode&&cycleTypeName == that.cycleTypeName&&cycleTypeInstanceCode == that.cycleTypeInstanceCode&&isDoneEvaluate == that.isDoneEvaluate&&isDoneFilleout == that.isDoneFilleout&&createInductionId == that.createInductionId&&createTime == that.createTime&&evaluationFillRoleId == that.evaluationFillRoleId&&roleCode == that.roleCode&&roleName == that.roleName&&isPlanReceptionCycle == that.isPlanReceptionCycle&&taskId == that.taskId&&isProcessCycleStage == that.isProcessCycleStage&&actualStartTime == that.actualStartTime&&fromLastProgressValue == that.fromLastProgressValue&&fromLastProgressValueUnit == that.fromLastProgressValueUnit&&changeFromLastTarget == that.changeFromLastTarget&&changeFromLastTargetUnit == that.changeFromLastTargetUnit&&fromLastTargetLiftRatio == that.fromLastTargetLiftRatio&&fromLastTargetLiftRatioUnit == that.fromLastTargetLiftRatioUnit&&fromLastReach == that.fromLastReach&&fromLastReachUnit == that.fromLastReachUnit&&reportScoreValue == that.reportScoreValue&&reportScoreUnit == that.reportScoreUnit&&actualScoreValue == that.actualScoreValue&&actualScoreUnit == that.actualScoreUnit&&workCycleUpdateSlice == that.workCycleUpdateSlice&&reportScore == that.reportScore&&actualScore == that.actualScore&&belongToContentId == that.belongToContentId&&hypertextContent == that.hypertextContent&&actualEndTime == that.actualEndTime&&showTargetValue == that.showTargetValue&&unit == that.unit&&belongToContentTypeCode == that.belongToContentTypeCode&&parentSubMidCycleType == that.parentSubMidCycleType&&taskName == that.taskName&&dataResultId == that.dataResultId&&dataResult == that.dataResult&&operationInductionId == that.operationInductionId&&newCycleEndTime == that.newCycleEndTime;
    }
@Override
  public int hashCode() {
      return Objects.hash(super.hashCode(), cycleStageDataId,evaObjTargetCycleId,deptId,virtualOrgDeptStatus,virtualOrgInductionRecordId,virtualOrganizationPosition,cyclelAlias,cycleStandardName,cycleNumberShortName,actualValue,actualValueUnit,targetDiagnosticValue,progressValue,progressValueUnit,progressFromLastRatio,progressFromLastRatioUnit,reach,reachUnit,actualFromLastTimeRatio,actualFromLastTimeRatioUnit,realTimeScore,realTimeScoreUnit,weightValue,weightScore,textSummaryData,operateTime,stageContentType,stageData,filledByInductionId,targetCycleContentTypeCode,targetCycleContentId,cycleDataObjId,summaryDataPic,cycleId,cycleStartTime,cycleEndTime,cycleTypeCode,cycleTypeName,cycleTypeInstanceCode,isDoneEvaluate,isDoneFilleout,createInductionId,createTime,evaluationFillRoleId,roleCode,roleName,isPlanReceptionCycle,taskId,isProcessCycleStage,actualStartTime,fromLastProgressValue,fromLastProgressValueUnit,changeFromLastTarget,changeFromLastTargetUnit,fromLastTargetLiftRatio,fromLastTargetLiftRatioUnit,fromLastReach,fromLastReachUnit,reportScoreValue,reportScoreUnit,actualScoreValue,actualScoreUnit,workCycleUpdateSlice,reportScore,actualScore,belongToContentId,hypertextContent,actualEndTime,showTargetValue,unit,belongToContentTypeCode,parentSubMidCycleType,taskName,dataResultId,dataResult,operationInductionId,newCycleEndTime);
    }

}
